大规模计算时代:深度生成模型何去何从
©PaperWeekly 原创 · 作者|Chunyuan Li
单位|Microsoft Research Researcher
研究方向|深度生成模型
人工智能的核心愿望之一是开发算法和技术,使计算机具有合成我们世界上观察到的数据的能力, 比如自然语言,图片等等。
每当我们建立一个模型来模仿这种能力时,该模型就称为生成模型(Generative Models)。
如果该模型涉及深度神经网络,则该模型是深度生成模型(Deep Generative Models, 简称 DGMs)。
作为深度学习中自我监督学习 (self-supervised learning)技术的一个分支,DGM 特别专注于刻画数据的生成过程。这篇文章回顾了 DGM 的历史,定义和现状,并分享最新的一些研究结果。最终希望启发大家去思考一个共同的主题:如何在大规模预训练时代推进或应用深度生成模型。
历史回顾和基础知识:三种类型的深度生成模型和一个通用技巧
生成模型(Generatitve Models)在传统机器学习中具有悠久的历史,它经常与另外一个主要方法(判别模型,Discriminative Models)区分开。我们可以通过一个故事 [1] 学到它们有何不同:有两兄弟,他们具有不同的特殊能力,一个具有深入洞察事物内在的能力,而另一个善于学习所见事物之间的差异。在故事里,前者代表生成模型,而后者代表区分模型,他们的特点总结为:
生成模型:专注于使用某种内部机制来表征实际观察的事物的分布;
区分模型:专注于在不同事物之间建立决策边界。
随着深度学习的兴起,生成模型通过和深度神经网络的结合,逐渐形成了一个新的家族:深度生成模型。他们这个家族有个共同的特点,就是利用神经网络来模拟数据生成的过程。
这样以来,复杂而神秘的数据生成过程就被某个参数量一定的神经网络的给拟合出来了,加之训练这个 DGM 的数据库本身大小也是确定的,这里就会出现一个潜在的通用技巧。引用 2016 年一篇 OpenAI 博客 [2] 上的话来说:
我们用作生成模型的神经网络具有许多参数,这些参数远小于我们在训练它用的数据量,因此模型会被迫使发现并有效地内化数据的本质,从而以生成数据。
简单地做一些数学上的刻画。作为来自真实数据分布
所有 DGM 都具有上述相同的基本目标和通用技巧,但是它们处理问题的思路方式不同。根据 OpenAI 的分类法,我们这里考虑三种流行的模型类型:VAE,GAN,自回归模型 (autoregressive models),详见下表:
从小型到大型的深度生成模型转变
多年来,我们在发展 DGM 及其理论原理方面做出了许多努力,DGM 在较小的规模上现在已得到相对较好的理解。上面提到的 DGM 技巧保证模型在温和条件下可以正常运行:
模型大小(参数数量)
科学影响力(迄今为止的引用次数)
Optimus: 在语言建模领域的机遇
论文标题:Optimus: Organizing Sentences via Pre-trained Modeling of a Latent Space
论文链接:https://arxiv.org/abs/2004.04092
代码链接:https://github.com/ChunyuanLI/Optimus
预训练语言模型(Pre-trained language models ,简称 PLM)在各种自然语言处理任务方面取得了实质性进展。PLM 通常经过训练,可以根据海量文本数据中的上下文预测单词,并且可以对学习的模型进行微调以适应各种下游任务。
PLM 通常可以扮演两个不同的角色:编码器(例如 BERT [12] 和 Roberta [13])和解码器(例如 GPT-2 [5] 和 Megatron [6])。有时,两个任务都可以在一个统一的框架中执行,例如 UniLM [14], BART [15] 和 T5 [16]。尽管这些已取得了显着的性能改进,但是它们缺乏一种在紧凑的特征空间对结构进行显式建模的功能,因此很难从整体句子的语义级别控制自然语言的生成和表示。
原理上来说,变分自动编码器(VAE)经过有效训练后,既可以作为强大的生成模型使用,又可以作为自然语言的有效表示学习框架来使用。VAE 把句子表示在低维的特征空间中,通过操纵句子对应的特征向量表示来轻松操纵句子语义上的变化(比如使用可解释的向量运算符等),操作后的向量作为整体语义的概要,来指导句子的生成。
例如,基本款的 VAE 就提供了一种由先验分布来指定的特征平滑的正则化。下图展示了 VAE 操纵句子变换的过程。
图2. 在语义空间组织和操纵句子
我们来利用下面的公式对比,详细了解下自回归模型和 VAE 在建模句子时候的不同。对于长度为 T 句子
GPT-2 也许是最著名的自回归模型 NLM 的实例,其优势来自由于在大量文本上进行预训练。这种自回归模型缺乏一种由高层语义指导的生成的能力。相反,VAE 生成
潜在变量 z 决定了句子的主要“轮廓”,例如时态,主题或情感,它会指导解码器在顺序解码的过程中按照轮廓来填充细节。将解码器 decoder θ 与编码器 encoder Φ 组合,我们就得到了 VAE 模型,它通过最大化对数似然下限 [17] 来学习参数。
尽管 VAE 具有扎实的理论优势,但当前语言建模中使用的 VAE 经常使用较小的网络体系结构(例如两层 LSTM)来构建模型, 这大大限制了模型的容量,导致性能欠佳。这种浅层 VAE,在当下的海量数据的时代,就尤其显得不适配——因为上文提到的 DGM 的通用技巧会崩溃:
如果扩大 VAE 模型,并将其用作新的预训练语言模型(PLM),将会发生什么?
因此,我们开发了 Optimus (Organizing sentences with pre-trained modeling of a universal latent space),第一个针对自然语言的大规模深度隐变量模型,该模型使用句子级别的(可变)自动编码器在大型文本语料库进行了预训练,从而将由符号表达的自然语言组织在一个连续且紧凑的特征空间里,把对句子的语义操作转换为对向量的算术操作。
Optimus 体系结构如下图(a)所示。为了易于培训,我们使用 BERT 初始化编码器,并使用 GPT-2 初始化解码器。[CLS] 位置输出的特征用于转化我们感兴趣的语义空间 z。
为了有效地利用 GPT-2 本身预训练的结果且不重新训练权重,我们研究了两种方案来把特征 z 送给编码器,并让它被用起来,如图(b)所示:1)z 充当了解码器的附加存储向量的作用出席;2)被添加到解码器的底部嵌入层,并在每个解码步骤中直接使用。
从经验上,我们发现基于内存的方案效果更好。为了避免臭名昭著的特征消失问题,我们对 KL 项采用了一些特殊处理,包括周期性变化系数 [18](cyclical annealing schedule)的技巧和按维度进行阈值处理 [19](dimension-wise thresholding)的技术。
作为一种新型的 PLM,Optimus 显示出一些有趣的结果,具有与现有 PLM 相比的独特优势:
语言建模:我们考虑了四个数据集,包括 Penn Treebank, SNLI, Yahoo 和 Yelp 语料库,并对每个 PLM 进行微调。由于 VAE 独特的先验分布中编码的语义知识,Optimus 在三个数据集上展示了低于 GPT-2 的困惑度(perplexity)。
另外,和文献中所有的自然语言上的 VAE 相比,Optimus 显示了更好的特征学习性能,以相互信息(mutual information)[20] 和活动单位(active units)[21] 衡量。这意味着预训练本身就是缓解特征消失问题的有效方法。
引导性的语言生成:由于潜在变量 z 的存在,Optimus 具有从语义级别控制句子生成的独特优势(GPT-2 在此方面是不适用的)。这种可控制性给用户提供了一种新的方式来和语言生成模型进行交互。
在图 4 中,我们展示了两种使用一些简单的潜在矢量操纵来说明这种想法:(1)通过潜在矢量的算术运算进行句子的类比写作:
图4. (a) 句子类比生成;(b) 句子插补。蓝色表示生成的句子。
图 4c 显示了在 Yelp 数据集上每个类别带有不同数量的标记样本的结果,Optimus 在低计算场景(feature-based setting)中显示了更好的结果。我们在 GLUE 数据集上可以观察到类似的比较。
感兴趣更多详细结果,请查看我们的论文,在 Github 上试试 Optimus 的代码。
FQ-GAN: 图像生成中的挑战
论文标题:Feature Quantization Improves GAN Training
论文链接:https://arxiv.org/abs/2004.02088
代码链接:https://github.com/YangNaruto/FQ-GAN
Generative Adversarial Networks (GAN)是一种流行的图像生成模型。它由两个网络组成:一个用于直接合成模拟样本的生成器(generator),以及一个用于区分真实样本 (
特征匹配(Feature matching)[22] 一项有理论支撑的训练 GAN 的原理技术, 它将 GAN 的数据分布匹配问题转换为鉴别器特征空间中的特征分布匹配问题。这要求从整体伪造样本和整体真实样本中算得的特征统计量要相似,比如,一阶或二阶矩。
但实际实现上,这些特征统计量是使用连续特征空间中的小批量数据(mini-batch)来估计的。随着数据集变得更大和更复杂(例如,更高的分辨率),基于小批量的估计质量变得很差。因为在固定大小的批量去估计更大的数据集,估计方差很大。对于 GAN 来说,这个问题尤为严重,因为生成器的伪造样本分布在训练中总是在变化 [23],这对于大规模扩展 GAN 模型提出了新的挑战。
为解决此问题,我们在论文 Feature Quantization Improves GAN Training 中提出了鉴别器的特征量化(FQ)的技术,将特征表示量化在一个字典空间里,而非它原来的连续空间。
FQ-GAN 的神经网络架构如图 6a 所示。相比较于原来的 GAN 模型,我们仅仅需要把 FQ 作为一个新的层,嵌入到区分器中某一层或者多层。FQ-GAN 将原来的连续特征限制在一组学习好的字典的元素上;而这里的字典元素,则一直代表着当前真假样本最具代表性的特征。
由于真假样本只能从有限的词典元素中选择其表示形式,因此 FQ-GAN 间接执行特征匹配。这可以使用图 6b 中的可视化示例进行说明,其中将真实样本特征
我们使用移动平均值更新(moving average updates)来实现不断更新的字典 E,使得该字典 E 确保包含一组与当前真假样本特征一致的元素。
我们所提出的 FQ 技术可以轻松地应用到现有的 GAN 模型中,且在训练中的计算开销却很小。大量的实验结果表明,FQ-GAN 可以在各种任务上大幅度提高基线方法的图像生成质量,我们尝试了在 9 个基准数据集上的 3 个代表性GAN模型:
BigGAN 图像生成。BigGAN [8] 是由 Google DeepMind 于 2018 年推出的,它是我们知道的最大的 GAN 模型。我们在以下三个数据集上将 FQ-GAN 与 BigGAN 进行了比较:CIFAR 10,CIFAR 100 和 ImageNet。这三个数据集依次具有越来越多的图像类别或者样本。
就 FID 值(该指标衡量了真假数据之间的特征统计差异)而言,FQ-GAN 始终优于 BigGAN 超过 10%。我们的方法还改进了 Twin Auxiliary Classifiers GAN [24],这是在 NeurIPS 2019 上出现的 GAN 的一个新变体,它特别适合细粒度的图像数据集。
StyleGAN 人脸合成。StyleGAN [9],是由 NVIDIA 在 2018 年 12 月推出的,该模型可以生成特别逼真的高分辨率人脸面部肖像的图像(想象下 Deep Fake 的潜在影响)。StyleGAN 是基于 Progressive GAN [25] 进行改进的,但它引入更多使研究人员可以更好地控制特定的视觉功能的机制。
我们在 FFHQ 数据集上进行比较,图像分辨率从 32x32 一直到 1024x2014。结果显示 FQ-GAN 收敛速度更快,并产生更好的最终性能。感受一下:
U-GAT-IT 图像转化。U-GAT-IT [10] 是刚出现在 ICLR 2020 上的最先进的图像样式转换(image style transfer)方法。在五个基准数据集上,我们看到 FQ 在很大程度上改善了量化性能,并显示了更好的人类感知评估结果。
如果你想使用 FQ 改善你的 GAN 模型,那赶紧尝试我们在 GitHub 上的代码,并查看我们的论文去了解更多细节。
Prevalent: 在视觉和语言导航任务上的应用
论文标题:Towards Learning a Generic Agent for Vision-and-Language Navigation via Pre-training
论文链接:https://arxiv.org/abs/2002.10638
代码链接:https://github.com/weituo12321/PREVALENT
通过对图像和语言的语义的进一步了解,自然而然的下一步就是使机器在理解多模态输入后能采取行动以完成指定任务。为了实现此目标,我们碰到的一项基本挑战就是“遵循自然语言的指示并让机器能够学习如何在视觉环境中导航” (vision-and-language navigation,简称 VLN)。在理想情况下,我们希望一次性地训练一个通用的机器,它可以迅速适应多个不同的下游任务。
为此,我们提出了 Prevalent,第一个遵循预训练和微调范式的 VLN 算法。如图 8a 所示,我们将预训练的数据样本表示为三元组(图像-文本-动作),并以两个目标对模型进行预训练:掩盖语言建模(masked language modeling)和动作预测 (action prediction)。
由于预训练不涉及最终的下游学习目标,因此这种自我监督的学习方法通常需要大量的训练样本才能发现多模态数据的内部本质,从而很好地泛化到新任务上。
在我们的研究中,我们发现该子领域最大的训练数据集 R2R 仅包含 104,000 个样本,这比用于自然语言(language pre-training)还有多模态(vision-and-language pretraining )的那些子领域的预训练数据集要小一个数量级。这会导致以下尴尬的情况:一方面由于训练数据不足而使得预训练质量不理想,另一方面,使用人工注释来收集此类样本又非常昂贵。
在我们的论文 Towards Learning a Generic Agent for Vision-and-Language Navigation via Pre-training 中, 我们尝试了用深度生成模型来合成这些多模态数据,很幸运地发现这样做居然是有效果的。
我们首先训练一个自动回归模型(相当于 VLN 领域的 Speaker 模型 [26]),该模型可以根据 R2R 数据集上的机器人的轨迹(一系列的动作和视觉图像的序列)生成语言指令。然后,我们使用模拟器(Matterport 3D Simulator)[27] 收集大量的最短轨迹,并使用生成模型合成它们相应的指令。这产生了 6,482,000 个新的训练样本。
通过图 8b 中比较了这两个数据集,我们看到合成数据占了 98.4% 的预训练数据。我们的 Prevalent 就是预训练在这样的组合数据集上。
预训练好模型后,我们尝试了三个下游导航任务的微调,包括房间到房间的导航(R2R),和两个域外任务:对话指导的视觉导航(CVDN)以及和人类交互更多的导航任务(HANNA)。我们的算法在这三个任务上都达到了最先进的水平。这些结果标明,深度生成模型合成的样品可用于预训练,并且可以提高其模型的通用性。
有关更多详细信息,请阅读我们的 CVPR 2020 论文 Towards Learning a Generic Agent for Vision-and-Language Navigation via Pre-training。我们在 GitHub 上发布了 Prevalent 的预训练模型,数据集和代码。我们希望它可以为将来在视觉和语言导航这个子领域的自我监督预训练方面的研究奠定坚实的基础。
展望未来
从上面的示例中,我们已经看到了在大规模训练时代,深度生成模型的的机遇,挑战和应用。下面我们谨慎地探讨下,这个时代背景下,深度生成模型未来可以开展的工作:
落地实用:随着我们继续推进这些模型并扩大其规模,我们可以期望 DGM 去合成高保真的图像或语言样本。这本身可能会在各个领域中会被真正地落地实用起来,例如艺术图像合成 [28] 或面向任务的对话 [29]。
技术组合:这三种深度学习模型类型的界限会很容易变得模糊,研究人员可以结合不同模型的优势进行进一步的改进。小规模的设置里已经有非常多融合的工作,那大规模的情况,是否会有新的技术难题呢?借助已经被极度大规模化的 autogressive models,其它模型类别是否会因此受益呢?
自我监督学习:这个我个人最感觉兴趣的方向。1)利用生成模型提升自我监督学习的性能,比如 Electra [39]。2)作为自我监督学习的一个分支,DGM 本身在基础工作上的进展也会在更加广泛的意义上影响自我监督学习 。
比如,上文交代的 DGM 的通用技巧,更深入一层的思考,其实也是自我监督学习的通用技巧:有限参数量的神经网络,在学会生成(部分)观察到的数据的中对其过程进行编码,这必须要求模型本身可以有效地学习并发现掌握数据的本质,从而推理出对许多下游任务都通用的良好表达。
致谢
首先感谢我的合作者们一起完成这些研究结果。另外,我们自己的研究实现基于 GitHub 上一些开源项目,在此对代码的作者们表示感谢:HuggingFace Transformers [31], BigGAN [8], StyleGAN [9], U-GAT-IT [10], Matterport3D Simulator [27], Speaker-Follower [26].
更多深度生成模型的基础知识学习资源,可以参考最近的大学课堂教程:斯坦福大学 [32](网络课程 [33]),加州伯克利大学 [34],哥伦比亚大学 [35],纽约大学 [36]。
如果你对类似的研究课题也感兴趣,欢迎探讨,合作。了解更多:http://chunyuan.li/
相关链接
点击以下标题查看更多往期内容:
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。